# -*- coding: utf-8 -*-
"""
    @Author ljy
    @Date 2020/11/5 15:10
    @Describe

"""
import random

from dbs.es import ESIndex
from unittest import TestCase
import requests

class TestEs(TestCase):
    """ES搜索引擎的测试单元类"""

    @classmethod
    def setUpClass(cls) -> None:
        # 测试单元启动后，会被调用一次
        # 场景：初始化索引对象
        print('-----start-----')
        cls.index = ESIndex('news_index')

    def setUp(self) -> None:
        print('--setup---')

    # 单元测试的方法，以test_开头的
    # 方法内，可以使用self.assertXXX()进行断言
    def test_1_index_delete(self):
        ret = self.index.delete_index()
        self.assertTrue(ret, '删除索引失败')

    def test_2_create(self):
        ret = self.index.create_index()
        self.assertTrue(ret, '创建索引失败')

    def test_3_add_doc(self):
        data = {
            'id': 3,
            'title': '老王看电视',
            'content': '看。。。'
        }
        ret = self.index.add_doc('ty', **data)
        self.assertTrue(ret, '创建文档失败')

    def test_4_update(self):
        ret = self.index.update_doc('ty', id='1', title='小赵又去隔壁了', content='...')
        self.assertTrue(ret, '更新文档失败')

    def test_5_query(self):
        ret = self.index.query()
        self.assertTrue(ret, '未查询到数据')
        print(ret)

    def tearDown(self) -> None:
        print('teardown')

    @classmethod
    def tearDownClass(cls) -> None:
        # 测试单元停止（完成所有测试任务），会被调用一次
        print('-----stop-----')
        cls.index = None

class Test8001(TestCase):
    base_url = 'http://xpy202:8001'

    def test_login(self):
        # 登录
        resp= requests.post(self.base_url+'/login',json={
            'username': 'admin1',
            'password': 'admin'
        })

        # 登录成功之后， 获取token
        headers = {
            'token': resp.json()['data']['token']
        }

        # 查询所有球员
        resp = requests.get(self.base_url+'/getall_player', headers=headers)
        data = resp.json()['data']

        # 随机获取删除环员的ID
        del_id = random.choice(data)['id']

        # 请求删除接口
        resp = requests.post(self.base_url+'/player_delete/',
                             params={'id': del_id},  # 查询参数
                             headers=headers)
        print(resp.json())

